﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DireitoAcesso.aspx.cs"
    Inherits="SinacorWebTools.Web.DireitoAcesso" EnableSessionState="True" %>

<%@ Register Assembly="SinacorWebTools.Web" Namespace="SinacorWebTools.Web" TagPrefix="cc1" %>
<html>
<head id="Head1" runat="server">
    <title>Cadastro de Direitos</title>
    <link rel="Stylesheet" href="css/default.css" />

    <script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>

    <script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script>

    <script type="text/javascript" src="js/jquery-blockui.js"></script>

    <script type="text/javascript" src="js/Funcao.js"></script>

    <script type="text/javascript">
        function ResetFormForInsert() {
            rightsForm.hdnCodigoDireito.value = "";
            rightsForm.hdnSelected.value = "";
            rightsForm.txtDescricao.value = "";
            rightsForm.cbTipoDireito.selectedIndex = 0;
            rightsForm.txtDescricao.focus();
            rightsForm.btDeleteSelected.disabled = true;
            ResetGridColor();

            var funcao = new Object();
            funcao.CodigoFuncao = 0;
            SetFuncao(funcao);
            
            var table = document.getElementById('tblModules');

            for (i = 0; i < table.rows.length; i++) {
                for (j = 0; j < table.rows[i].cells.length; j++) {
                    if (table.rows[i].cells[j].children.length > 0) {
                        var chk = table.rows[i].cells[j].children[0];
                        chk.checked = false;
                    }
                }
            }
        }

        function ConfirmDeletion() {
            if (confirm("Você tem que certeza que deseja deletar o(s) item(s) selecionado(s) ?"))
                return true;
            else
                return false;
        }

        function GridItemClick(dataGrid, linha, jsonObject) {
            var grid = eval(dataGrid);
            var linha = eval(linha);
            var rows = grid.getElementsByTagName("tr");

            for (i = 1; i <= (rows.length - 4); i++) //-4 linhas porque a customização da paginação cria tabela para renderizar a combo de páginas
            {
                rows[i].style.backgroundColor = "#ffffff";
                
                inputs = rows[i].getElementsByTagName("input");
                for (j = 0; j < inputs.length; j++) {
                    if (inputs[j].type == "checkbox")
                        inputs[j].checked = false;
                }
            }

            linhaSelecionada = linha;
            linha.style.backgroundColor = "#B2BAC6";
            rightsForm.cbTipoDireito.disabled = true;

            SetForm(jsonObject);
        }

        var linhaSelecionada; //variavel global
        function GrifaLinha(cor, linha) {
            if (linhaSelecionada) {
                if (linha != linhaSelecionada)
                    linha.style.backgroundColor = cor;
            }
            else
                linha.style.backgroundColor = cor;
        }

        function GetSelectedItems(grid) {

            rightsForm.txtDescricao.value = "";
            rightsForm.cbTipoDireito.selectedIndex = 0;
            rightsForm.cbTipoOperacao.selectedIndex = 0;
            rightsForm.hdnSelected.value = "";

            var rows = grid.getElementsByTagName("tr");

            for (i = 1; i < rows.length; i++) {
                inputs = rows[i].getElementsByTagName("input");
                for (j = 0; j < inputs.length; j++) {
                    if (inputs[j].type == "checkbox" && inputs[j].checked) {
                        rightsForm.hdnSelected.value += inputs[j].id + ",";
                    }
                }
            }

            rightsForm.hdnSelected.value = rightsForm.hdnSelected.value.substring(0, rightsForm.hdnSelected.value.length - 1);

            if (rightsForm.hdnSelected.value.length == 0)
                rightsForm.btDeleteSelected.disabled = true;
            else
                rightsForm.btDeleteSelected.disabled = false;
        }

        function SetForm(jsonObject) {

            var direito = $.parseJSON(jsonObject);

            rightsForm.hdnSelected.value = "";
            rightsForm.hdnCodigoDireito.value = direito.CodigoDireito;
            rightsForm.txtDescricao.value = direito.DescricaoDireito.replace("http://www.bovespa.com.br/", "");
            SetFuncao(direito.Funcao);

            for (i = 0; i < rightsForm.cbTipoDireito.length; i++) {
                if (rightsForm.cbTipoDireito[i].value == direito.CodigoTipoDireito) {
                    rightsForm.cbTipoDireito.selectedIndex = i;
                    break;
                }
            }

            for (i = 0; i < rightsForm.cbTipoOperacao.length; i++) {
                if (rightsForm.cbTipoOperacao[i].value == direito.CodigoTipoOperacao) {
                    rightsForm.cbTipoOperacao.selectedIndex = i;
                    break;
                }
            }

            var table = document.getElementById('tblModules');
            for (i = 0; i < table.rows.length; i++) {
                for (j = 0; j < table.rows[i].cells.length; j++) {
                    if (table.rows[i].cells[j].children.length > 0) {
                        var chk = table.rows[i].cells[j].children[0];
                        chk.checked = false;
                    }
                }
            }

            var modulos = direito.SiglaModulos.split(',');
            for (i = 0; i < modulos.length; i++) {
                var chk = document.getElementById(modulos[i]);
                if (chk != null)
                    chk.checked = true;
            }
        }

        function DeleteFuncao() {
            var funcao = new Object();
            funcao.CodigoFuncao = 0;
            SetFuncao(funcao);
        }

        function SetFuncao(funcao) {
            if (funcao) {
                if (funcao.CodigoFuncao > 0) {
                    rightsForm.hdnFuncaoSelecionada.value = funcao.CodigoFuncao;
                    var div = document.getElementById('FuncaoSelecionada');
                    div.innerHTML = "<a href='#' onclick='ShowFuncao(\"SelecionaFuncao.aspx\");'>" + funcao.Sigla + " - " + funcao.Descricao + "</a>&nbsp;-&nbsp[<a href='#' onclick='DeleteFuncao();'>Remover</a>]";
                }
                else {
                    rightsForm.hdnFuncaoSelecionada.value = "";
                    var div = document.getElementById('FuncaoSelecionada');
                    div.innerHTML = "<a href='#' onclick='ShowFuncao(\"SelecionaFuncao.aspx\");'>Selecionar Função</a>";
                }
            }
            else {
                rightsForm.hdnFuncaoSelecionada.value = "";
                var div = document.getElementById('FuncaoSelecionada');
                div.innerHTML = "<a href='#' onclick='ShowFuncao(\"SelecionaFuncao.aspx\");'>Selecionar Função</a>";
            }
        }

        function ResetGridColor() {
            grid = document.getElementById("grdRights");
            if (grid) {
                var rows = grid.getElementsByTagName("tr");

                for (i = 1; i < rows.length; i++) {
                    inputs = rows[i].getElementsByTagName("input");
                    for (j = 0; j < inputs.length; j++) {
                        if (inputs[j].type == "checkbox") {
                            inputs[j].checked = false;
                            rows[i].bgColor = "#ffffff";
                        }
                    }
                }
            }
        }

        $(document).ready(function() {
            BlockUI("dvGrdRight");
            $.blockUI.defaults.css = {};

            rightsForm.btDeleteSelected.disabled = true;
        });

        function BlockUI(elementID) {
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_beginRequest(function() {
                $("#" + elementID).block({ message: '',
                    css: {},
                    overlayCSS: { backgroundColor: '#000000', opacity: 0.4
                    }
                });
            });
            prm.add_endRequest(function() {
                $("#" + elementID).unblock();
            });
        }

        function ValidateForm() {

            var moduloSelected = false;

            var descricao = document.getElementById('txtDescricao');
            if (descricao) {
                if (descricao.value.trim().length == 0) {
                    alert('A descrição do direito deve ser registrado.')
                }
            }

            var table = document.getElementById('tblModules');
            for (i = 0; i < table.rows.length; i++) {
                for (j = 0; j < table.rows[i].cells.length; j++) {
                    if (table.rows[i].cells[j].children.length > 0) {
                        moduloSelected = table.rows[i].cells[j].children[0].checked
                        if (moduloSelected)
                            break;
                    }
                }
            }

            if (!moduloSelected) {
                alert('Um ou mais Módulos devem ser selecionados');
                return false;
            }

            return true;
        }
    </script>

</head>
<body style="margin-left: 8px; margin-top: 5px; margin-bottom: 0px; margin-right: 0px;">
    <form id="rightsForm" runat="server">
    <asp:ScriptManager runat="server" ID="scrManager" EnablePageMethods="True" />
    <input type="hidden" id="hdnCodigoDireito" name="hdnCodigoDireito" runat="server" />
    <input type="hidden" id="hdnSelected" name="hdnSelected" runat="server" />
    <table width="100%" border="0">
        <tr>
            <td>
                <fieldset>
                    <legend>Formulário de Cadastro</legend>
                    <br />
                    <asp:UpdatePanel runat="server">
                        <ContentTemplate>
                            <table cellpadding="0" cellspacing="0" border="0" width="100%">
                                <tr valign="middle">
                                    <td width="80px">
                                        Descrição:
                                    </td>
                                    <td valign="middle">
                                        <table border="0" cellpadding="0" cellspacing="0">
                                            <tr>
                                                <td>
                                                    <asp:Label ID="lblUrlBovespa" Text="http://www.bovespa.com.br/" runat="server" />&nbsp;
                                                </td>
                                                <td>
                                                    <asp:TextBox ID="txtDescricao" runat="server" Width="700px" Style="font-size: x-small;" />
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr valign="middle" style="height: 30px;">
                                    <td>
                                        Tipo do Direito:
                                    </td>
                                    <td>
                                        <table cellpadding="0" cellspacing="0" border="0">
                                            <tr>
                                                <td width="360">
                                                    <asp:DropDownList ID="cbTipoDireito" runat="server" Width="352" />
                                                </td>
                                                <td width="95">
                                                    Tipo da Operação:
                                                </td>
                                                <td style="width: 80px;">
                                                    <asp:DropDownList ID="cbTipoOperacao" runat="server" />
                                                </td>
                                                <td style="width: 45px;">
                                                    Função:
                                                </td>
                                                <td style="text-align: left; vertical-align: middle;">
                                                    <div id="FuncaoSelecionada">
                                                        <a href="#" onclick="ShowFuncao('SelecionaFuncao.aspx');">Selecionar Função</a>
                                                    </div>
                                                    <input type="hidden" id="hdnFuncaoSelecionada" name="hdnFuncaoSelecionada" runat="server" />
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr style="height: 25px;">
                                    <td>
                                        Módulos:
                                    </td>
                                    <td valign="middle">
                                        <table cellpadding="0" cellspacing="0" border="0" id="tblModules" runat="server" />
                                    </td>
                                </tr>
                                <tr style="height: 25px;">
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        <asp:Button ID="btSave" runat="server" Text="Salvar" Width="80px" OnClick="btSave_Click"
                                            OnClientClick="return ValidateForm();" />
                                    </td>
                                </tr>
                            </table>
                        </ContentTemplate>
                    </asp:UpdatePanel>
                </fieldset>
            </td>
        </tr>
        <tr>
            <td>
                <fieldset>
                    <legend>Pesquisa</legend>
                    <table cellpadding="0" cellspacing="0" border="0" width="100%">
                        <tr valign="middle">
                            <td width="100" valign="middle">
                                Pesquisa:
                            </td>
                            <td valign="middle" width="320">
                                <asp:TextBox ID="txtPesquisa" Text="" Width="300" runat="server" />
                            </td>
                            <td style="text-align: left;">
                                <asp:UpdatePanel runat="server">
                                    <ContentTemplate>
                                        <asp:Button runat="server" ID="btnPesquisar" Text="Pesquisar" OnClick="btnPesquisar_Click"
                                            OnClientClick="ResetFormForInsert();" />
                                    </ContentTemplate>
                                </asp:UpdatePanel>
                            </td>
                        </tr>
                    </table>
                </fieldset>
            </td>
        </tr>
        <tr>
            <td>
                <table width="100%">
                    <tr valign="top">
                        <td width="1">
                            <asp:Button ID="btDeleteSelected" runat="server" Text="Deletar itens selecionados"
                                OnClientClick="return ConfirmDeletion();" OnClick="btDeleteSelected_Click" />
                        </td>
                        <td width="1">
                            <input type="button" id="btNewItem" value="Inserir novo item" onclick="ResetFormForInsert();" />
                        </td>
                        <td width="99%" align="right">
                            <asp:UpdatePanel runat="server">
                                <ContentTemplate>
                                    <asp:Label ID="lblMessage" runat="server" />
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td>
                <div id="dvGrdRight">
                    <asp:UpdatePanel ID="updPnlRights" runat="server" UpdateMode="Conditional">
                        <ContentTemplate>
                            <cc1:PagingGridView runat="server" AllowPaging="True" PageSize="8" AllowSorting="True"
                                CellPadding="2" CellSpacing="1" ForeColor="#333333" Font-Size="X-Small" GridLines="None"
                                Width="100%" ID="grdRights" AutoGenerateColumns="False" OnPageIndexChanging="grdRights_PageIndexChanging"
                                OnRowDataBound="grdRights_RowDataBound" OnSorting="grdRights_Sorting">
                                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <PagerStyle BackColor="#5D7B9D" ForeColor="White" HorizontalAlign="Center" Wrap="False" />
                                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" Height="26px" />
                                <EditRowStyle BackColor="#999999" />
                                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                                <Columns>
                                    <asp:TemplateField HeaderText="&nbsp;" HeaderStyle-Width="25px" ItemStyle-HorizontalAlign="Center">
                                        <ItemTemplate>
                                            <input type="checkbox" id="<%# Eval("CodigoDireito") %>" onclick="GetSelectedItems(<%= grdRights.ClientID %>);" />
                                        </ItemTemplate>
                                        <HeaderStyle Width="25px" />
                                        <ItemStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:BoundField HeaderText="Codigo" DataField="CodigoDireito" HeaderStyle-Width="55px"
                                        ItemStyle-HorizontalAlign="Center" SortExpression="CodigoDireito">
                                        <HeaderStyle Width="55px" />
                                        <ItemStyle HorizontalAlign="Center" />
                                    </asp:BoundField>
                                    <asp:TemplateField HeaderText="Descrição" HeaderStyle-HorizontalAlign="Left" SortExpression="DescricaoDireito">
                                        <ItemTemplate>
                                            <asp:LinkButton runat="server" ID="lnkDescricaoDireito" href="#" />
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:TemplateField>
                                    <asp:BoundField HeaderText="Tipo Direito" DataField="DescricaoTipoDireito" SortExpression="DescricaoTipoDireito"
                                        HeaderStyle-HorizontalAlign="Left">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>
                                    <asp:TemplateField HeaderText="Tipo Operação" HeaderStyle-HorizontalAlign="Center"
                                        HeaderStyle-Width="40" ItemStyle-HorizontalAlign="Center" SortExpression="CodigoTipoOperacao">
                                        <ItemTemplate>
                                            <asp:Label runat="server" ID="lblGrdTipoOperacao" />
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" Width="110px" />
                                        <ItemStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                </Columns>
                            </cc1:PagingGridView>
                        </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="btnPesquisar" EventName="Click" />
                            <asp:AsyncPostBackTrigger ControlID="btSave" EventName="Click" />
                            <asp:AsyncPostBackTrigger ControlID="btDeleteSelected" EventName="Click" />
                        </Triggers>
                    </asp:UpdatePanel>
                </div>
            </td>
        </tr>
    </table>
    </form>
</body>
</html>
